package com.flying.keyword;

/**
 * @ClassName: ClasseAndObject.StaticDemo
 * @createDate: 2023/6/22 15:27
 * @author: liu
 * @description:static关键字的使用
 */
public class StaticDemo {
    public static void main(String[] args) {
 /*       ClasseAndObject.Dog d=new ClasseAndObject.Dog();
        d.eat();*/

        /*

        被 static 修饰的方法和属性属于类，可以直接通过类名来访问，不用创建对象
        静态方法里只能访问静态的属性，调用静态的方法，不能访问非静态属性和非静态方法
        静态方法和属性，可以通过实例对象访问，也可以通过类来访问！

        */
        Dog.eat("粑粑");
        System.out.println(Dog.name);


    }

}
class Dog {
    static String name;
    int  age;
    String color;

    public static void eat(String 粑粑){
        System.out.println("狗在吃粑粑");
        // System.out.println(age);  午饭访问成员变量 age
        System.out.println(name);
    }

    public  void drink(){
        //  非静态方法能访问静态属性和方法和非静态方法和属性
        System.out.println(name);
        System.out.println(age);
        eat("粑粑");  //   非静态方法可以访问静态方法
    }


}
